<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta name="author" content="lcy">
    <title></title>
    <script src="jquery-3.1.1.js"></script>
    <style>
        div{
            width: 300px;
            height: 300px;
            border: 2px dotted darkcyan;
            box-sizing: border-box;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        img{
            max-width: 100%;
            max-height: 100%;
        }
    </style>
</head>
<body>
    <div><span>拖动图片到这里上传</span></div>
    <button type="submit">上传</button>
</body>
</html>
<script>
    // 在jq中使用drag drop相关事件 需要使用ev.originalEvent获取原始事件对象 因为在jq封装的事件中没有datatransfor属性 也无法获取到files属性
    // 通过on给DOM元素集合同时添加多个事件 
    $('div').on({
        dragover:function(ev){
            // 阻止默认事件
            ev.preventDefault();
        },
        drop:function(ev){
            // 阻止默认事件
            ev.preventDefault();
            // 下次拖拽的时候把未上传的图片清空
            $('div').empty();
            console.dir(ev);
            // 获取拖拽的文件
            var file=ev.originalEvent.dataTransfer.files[0];
            console.log(file);
            if(file.type.startsWith('image')){
                $('div').append('<img src='+URL.createObjectURL(file)+'>');
                $('span').hide();
            }
        }
    })
</script>